Not applicable.
Not applicable.
1. Field of the Invention
The present invention generally relates to video display systems. More particularly, the present invention relates to on-screen display images generated by video display systems. More particularly still, the invention relates to an improved data format for on-screen displays to reduce bandwidth in a video system.
2. Background of the Invention
The consumer electronics industry has experienced a dramatic explosion in product development over the last 20 years. This explosion has been fueled by consumer demand coupled with significant advances in semiconductor technology that have lead to lower cost semiconductor devices incorporating significantly more functionality than previously possible. For example, a hand-held calculator from 20 years ago provided the ability to perform rudimentary mathematical operations. Today, a hand-held device can provide much of the functionality of a desktop computer system.
Significant advances have also been made with respect to video equipment, such as televisions, videocassette recorders (VCR""s), and the video and graphics subsystems in personal computers. This sophistication of these types of equipment has increased to a level where it has been necessary for the equipment manufacturers to devise new types of user interfaces to insure that the equipment remains easy to use. Rather than providing buttons, switches, and knobs on the front panel of such equipment, the manufacturers instead often design the equipment to be operated by xe2x80x9con-screen displaysxe2x80x9d (OSD""s). An OSD is a window that xe2x80x9cpops upxe2x80x9d on the television or computer display and provides a control interface for the user. For example, many VCR""s are programmed by pressing a xe2x80x9cmenuxe2x80x9d button on the remote control. In response, an OSD pops up on the television screen and provides menu choices to permit the user to program the VCR. The user then can use the remote control to scroll through the various OSD menu choices and select the desired choices for programming the VCR. OSD""s are also used in conjunction with digital video disk (DVD) players, personal computers, and other types of equipment.
An OSD represents an image that is drawn on a television or computer screen. Such screens typically are comprised of a plurality of rows and columns of xe2x80x9cpixels.xe2x80x9d A typical television screen comprises a grid of pixels in accordance with one of at least two industry standard formats. In the NTSC standard, each frame of video includes 720 columns of pixels with each column including 480 pixels (720xc3x97480). The PAL standard includes a pixel grid of 720xc3x97576 pixels. Computer screens typically have a higher resolution. A full screen OSD is typically divided into several regions transparent to the user. An OSD image typically covers only a portion of the screen and thus includes less than the total number of pixels available on the screen.
Recently, digital video disk (DVD) systems and have become available as an alternative to VCR""s. A digital video disk resembles a CD-ROM disk and can store an entire movie including both video and audio information as well as other information. DVD systems can be connected to a television or incorporated into a computer system. The present invention relates to an improved format for representing OSD images. The principles of the invention are applicable with respect to any video equipment that generates OSD""s. For simplicity in explaining the preferred embodiments of the invention, however, this disclosure focuses on OSD images in the context of DVD systems.
A DVD system typically includes a microcontroller for controlling the drive, memory for storing video data and other information, a decoder for decoding video, audio data stored in a predefined coded format such as in Moving Pictures Experts Group (MPEG), and other components. The OSD information is stored in memory generally according to the format shown in FIG. 1 which illustrates OSD information for three different on-screen displaysxe2x80x94OSD 1, OSD 2, and OSD 3. Each OSD data set itself comprises three types of data. The header data includes information regarding the location of the associated OSD image on the television or computer screen, as well as other needed information for drawing the OSD image. The color palette includes digital representations of one or more colors that can be used to draw each pixel in the OSD image. The pixel data includes a value associated with each OSD pixel that specifies which color from the color palette is to be applied by the audio and video decoder to that pixel. Thus, in conventional video systems every OSD data set includes a header, a color palette and pixel data
Each OSD data set requires a finite amount of memory for storage. As more colors are added to the color palette, the color palette requires more memory for storing the additional colors. Similarly, as the size of the OSD image itself becomes larger and thus encompasses more screen pixels, the amount of pixel data increases thus requiring more memory for storage. For the video decoder to display an OSD image on the display, the desired OSD data set must be transferred from memory where it is stored to the decoder. The transfer of an OSD data set from memory to the decoder takes a finite amount of time which disadvantageously increases for larger OSD data sets. Further, images on a computer or television monitor are re-drawn many times each second (generally 30 times per second). The rate at which the screen is re-drawn is sufficiently fast to be imperceptible to the human eye. Thus, the image looks constant (i.e., does not flicker) on the screen. Because the OSD may change at any point in time (e.g., removed from the screen altogether or changed based on input from the user), it is generally necessary to re-copy the entire OSD data set from memory to the video decoder every time the screen is re-drawn. Re-copying the entire OSD data set is also required because most video decoders do not include enough internal memory to store all of the OSD data sets at one time.
The memory in which OSD information is stored is also shared by other components in the DVD system. For example, the memory is also used to store information relevant to the decoding and display processes as well as general configuration information. Thus, a xe2x80x9cbottleneckxe2x80x9d may occur as multiple devices compete for access to memory. Generally, data is transferred from one device in an electronic system to another device across a collection of digital signal lines collectively referred to as a xe2x80x9cbus.xe2x80x9d Typically, a single bus may interconnect numerous electronic components. Most bus communication protocols only permit one transaction (e.g., data transfer) to run at a time on the bus. Other components connected to the bus also desiring to use the bus to execute a transaction must wait until the prior data transaction completes.
The maximum rate at which data can be transferred across a bus (generally referred to as the xe2x80x9cbandwidthxe2x80x9d of the bus) is determined by the particular types of components connected to the bus as well as the communication protocol implemented by the bus. Because the complete OSD data set must be transferred from memory to the audio and video decoder across a bus many times each second and other components in the DVD system may also need access to the bus, it may be difficult for the video system to timely accomplish all that is required given the bandwidth limitation of the bus.
One solution to this problem might be to develop electronic components that operate at faster speeds than previously possible. As such, the bandwidth of the bus used transfer the OSD data could be increased. Although this approach should not be neglected, it is generally a costly approach that requires significant development and testing time and resources. Accordingly, it would be desirable to be able to transfer OSD data across a bus in less time than previously possible given an existing data bus transfer rate.
The deficiencies noted above are solved in large part by a video system that processes OSD data sets, at least some of which do not include a color palette. In accordance with the preferred embodiment, each OSD data set includes a header comprising multiple bits of status and control information. One of the control bits is a BITMAP ONLY (BMP ONLY) bit that indicates whether the OSD data set includes a color palette. Preferably the BMP ONLY bit is set to indicate no color palette in present and cleared to indicate the inclusion of a palette in the corresponding OSD data set. By not including a color palette in an OSD data set, the OSD image can be represented with a smaller data set, and the bus bandwidth problem is alleviated.
In one embodiment of the invention if the BMP ONLY bit is set, indicating the absence of a color palette in the corresponding OSD data set, a color palette included in another OSD data set is used instead to draw the desired OSD image. Accordingly, bit map data from one OSD data set specifies which colors are to be used from a color palette in another OSD data set. This embodiment is particularly beneficial when multiple OSD""s are to be displayed all using the same colors. Alternatively, a default color palette can be used if desired.
The video system implementing the invention preferably represents the processing circuitry in a digital video disk (DVD) drive, although the invention can be implemented in other types of video equipment as well. The video system preferably includes an audio/video decoder connected to memory and other devices. The audio/video decoder includes a microcontroller coupled to various functional units including a memory interface, a video decoder and a video interface over a bus.
OSD data sets and MPEG encoded video data stored in memory are transferred through the memory interface into the audio/video decoder. The video decoder decodes the encoded data and filters included in the video interface further process the decoded video data. The video interface also includes an OSD mixer that mixes OSD data with the processed video data. The OSD mixer examines the BMP ONLY bit, preferably included in a header portion of each OSD data set, and if the BMP ONLY bit is configured to indicate the absence of a color palette in the data set, the OSD mixer uses a color palette from another data set or uses a default color palette.
The invention permits OSD images to be represented with fewer bytes than previously possible, thus alleviating the bandwidth problem of data transfers on a bus in a video system. These and other benefits and advantages will become apparent after reading the following disclosure in conjunction with the drawings.